home *** CD-ROM | disk | FTP | other *** search
- program tstMonth;
-
- {$APPTYPE CONSOLE}
-
- uses
- Windows,
- SysUtils;
-
- function CalcDaysInMonth1(Month, Year : integer) : integer;
- begin
- if (Month = 4) or (Month = 6) or (Month = 9) or (Month = 11) then
- Result := 30
- else if (Month = 2) then begin
- if (((Year div 4) = 0) and
- (((Year div 100) <> 0) or ((Year div 400) = 0))) then
- Result := 29
- else
- Result := 28
- end
- else
- Result := 31;
- end;
-
- function CalcDaysInMonth2(Month, Year : integer) : integer;
- const
- DaysInMonth : array [1..12] of integer =
- (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
- begin
- Result := DaysInMonth[Month];
- if (Month = 2) then begin
- if (((Year div 4) = 0) and
- (((Year div 100) <> 0) or ((Year div 400) = 0))) then
- Result := 29;
- end;
- end;
-
- var
- i : integer;
- M, Y : integer;
- StartTime : DWORD;
- begin
- writeln('testing algorithm 1...');
- StartTime := GetTickCount;
- for i := 1 to 10000 do begin
- for Y := 1600 to 3000 do begin
- for M := 1 to 12 do begin
- CalcDaysInMonth1(M, Y);
- end;
- end;
- end;
- writeln('time taken: ', GetTickCount - StartTime);
-
- writeln('testing algorithm 2...');
- StartTime := GetTickCount;
- for i := 1 to 10000 do begin
- for Y := 1600 to 3000 do begin
- for M := 1 to 12 do begin
- CalcDaysInMonth2(M, Y);
- end;
- end;
- end;
- writeln('time taken: ', GetTickCount - StartTime);
-
-
- readln;
- end.
-